package com.extension.company.common.permission;

import android.app.Activity;
import android.os.Build;

/**
 * 提供给外部使用的权限申请的工具类
 * 直接使用 openPermissions 进行权限的判断
 *
 * @author zwk
 */
public class PermissionsUtil {


	/**
	 * 拍照所需的权限
	 */
	public static final String[] OPEN_CAMER_PERMISSIONS = new String[]{
			android.Manifest.permission.WRITE_EXTERNAL_STORAGE,  // 写权限
			android.Manifest.permission.READ_EXTERNAL_STORAGE,   // 读权限
			android.Manifest.permission.CAMERA};                 // 摄像头权限


	/**
	 * SD卡读写权限
	 */
	public static final String[] WRITE_READ_PERMISSIONS = new String[]{
			android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
			android.Manifest.permission.READ_EXTERNAL_STORAGE};


	/**
	 * 语音权限
	 */
	public static final String[] AUDIO_PERMISSIONS = new String[]{
			android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
			android.Manifest.permission.RECORD_AUDIO,
			android.Manifest.permission.MODIFY_AUDIO_SETTINGS};

	/**
	 * 打开权限
	 *
	 * @param PERMISSIONS        权限数组
	 * @param REQUEST_PERMISSION 权限申请回调结果
	 * @return true 有权限      false 无权限
	 */
	public static boolean openPermissions(Activity context, String[] PERMISSIONS, int REQUEST_PERMISSION) {
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //检查权限(6.0以上做权限判断)
			if (PermissionsChecker.lacksPermissions(context, PERMISSIONS)) {  // 判断权限组是否申请了权限，true没有权限，false有权限
				startPermissionsActivity(context, REQUEST_PERMISSION, PERMISSIONS);  // 跳转到权限申请activity
				return false;
			}
		}
		return true;
	}

	/**
	 * 跳转到权限的activity 去申请权限
	 *
	 * @param context            上下文
	 * @param REQUEST_PERMISSION 权限申请的回调
	 * @param PERMISSIONS        权限组
	 */
	public static void startPermissionsActivity(Activity context, int REQUEST_PERMISSION, String[] PERMISSIONS) {
		PermissionsActivity.startActivityForResult(context, REQUEST_PERMISSION, PERMISSIONS);  // 调用权限activity的方法跳转到权限activity界面
	}
}
